﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using VemTransporte.Models.Basica;
using NHibernate;
using NHibernate.Criterion;
using System.Collections;

namespace VemTransporte.Models.Persistencia
{
    public class RepLocalizacao: GenericNHibernateDAO<Localizacao, long>
    {
        public Localizacao ProcurarUltimaLocalizacaoPorIdVeiculo(int id)
        {
            Localizacao retorno = null;

            ICriteria criteria = Session.CreateCriteria(typeof(Localizacao)).SetMaxResults(1).AddOrder(Order.Desc("DataHoraServer"));
            //criteria.Add(Expression.Like("DataHoraServer", "Max"));
            criteria.Add(Restrictions.Eq("Veiculo.Id", id));

            retorno = criteria.UniqueResult<Localizacao>();
            
            //IQuery query = Session.CreateQuery("from Localizacao l where l.Veiculo.Id=:IdVeiculo and l.DataHoraServer=(select max(loc.DataHoraServer) from Localizacao loc)").SetInt32("IdVeiculo", id);
            // IQuery query = Session.CreateQuery("from Localizacao l where l.Veiculo.Id=:IdVeiculo order by l.LOC_DataHoraServer desc").SetInt32("IdVeiculo", id).SetMaxResults(1);
            //retorno = query.UniqueResult<Localizacao>();

            return retorno;
        }
    }
}